package com.example.demo.config;

import com.example.demo.interceptor.InterceptorLogin;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;


//拦截器配置
/**
 * 在springboot2.0.0之后，WebMvcConfigurerAdapter已经过时了
 * 会使用WebMvcConfigurer或者WebMvcConfigurationSupport替代
 */
@Configuration
public class InterceptorConfig implements WebMvcConfigurer {
    //继承WebMvcConfigurationSupport将会报no mapper for get

    //拦截器按照顺序执行,如果不同拦截器拦截存在相同的URL，前面的拦截器会执行，后面的拦截器将不执行
    @Override
    public void addInterceptors(InterceptorRegistry registry) {

        //链式编程
        registry.addInterceptor(new InterceptorLogin())
                .addPathPatterns("/**") //添加要拦截的路径，此处拦截所有
                .excludePathPatterns(   //添加不做拦截的路径资源和请求
                        "/login",       //登录请求
                        "/getCode",     //获取验证码请求
                        "/**/*.html",   //静态页面资源
                        "/**/*.js",     //js资源
                        "/**/*.css");   //CSS资源

        //super.addInterceptors(registry);
    }
}
